home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / ien / ien-211 < prev    next >
Text File  |  1988-12-01  |  24KB  |  565 lines

  1.  
  2.  
  3. Internet Experiment Note: 211
  4.  
  5.  
  6.  
  7.         PROTOCOL SPECIFICATION AND VERIFICATION WORK AT USC/ISI
  8.                              Summary Report
  9.                               August 1982
  10.  
  11.                              Carl Sunshine
  12.  
  13.  
  14.  
  15.  
  16. 1.  INTRODUCTION
  17.  
  18. For the past three years, several projects at USC/ISI, particularly the
  19. Internet Concepts Project, have been studying formal protocol
  20. specification and verification.  This work is now coming to an end, and
  21. we would like to present here a summary of results obtained.  More
  22. complete information is available in a research report [1].  A complete
  23. list of references to earlier outputs is also included here.
  24.  
  25. Section 2 presents a brief outline of the major activites undertaken
  26. and their outputs.  Sections 3-5 summarize the results obtained in each
  27. major area.  Conclusions are discussed in Section 6.
  28.  
  29. 2.  MAJOR ACTIVITIES
  30.  
  31. Our work has been divided into three major areas: survey, in-depth
  32. studies, and standards activities.
  33.  
  34. As might be expected, the work began in the survey area in 1979,
  35. building on a study (jointly sponsored by ARPA and NBS) completed while
  36. the author was still at the Rand Corp [2].  Extensions of this work
  37. resulted in two journal publications [3,4].  A later and entirely new
  38. survey was completed in 1981 [5], and again the results were widely
  39. distributed in conferences, journals, and books [6,7,8,9,10].  As part
  40. of this later survey effort, major papers in the field were selected and
  41. collected into a reprint volume, published by Artech House [11].
  42.  
  43. We have also helped to organize a number of workshops bringing together
  44. researchers in the field to discuss current state of the art, problems,
  45. and promising future directions.  The first was sponsored by ARPA in
  46. 1979 [12,13].  The next was hosted by ISI in 1980 [14].  A major effort
  47. was made to broaden participation in 1981 with a workshop sponsored by
  48. IFIP WG 6.1 and organized jointly with the British National Physical
  49. Laboratory [32].  The success of this effort has led to a series of
  50. annual IFIP workshops on this topic, organized and hosted by us in 1982
  51. with a published proceedings [15].
  52.  
  53.  
  54.  
  55.  
  56. C. Sunshine                                                     [Page 1]
  57.  
  58. IEN 211                                                      August 1982
  59.  
  60.  
  61.  
  62. We have also edited or organized several special sections on formal
  63. modeling of protocols in journals [4,16,17].
  64.  
  65. Our in-depth studies have focused on the appplication of general
  66. software engineering techniques to protocols, and particularly on
  67. experiments with automated tools for verification.  The majority of our
  68. work has been done with AFFIRM, a system based on abstract data types
  69. with axiomatic specifications developed at ISI.  Experience with several
  70. protocols and with various aspects of the methodology (safety, liveness,
  71. multi-level specifications) have been reported in technical reports
  72. [18,19,20], a conference [21], a PhD thesis [22], and a journal [18].
  73.  
  74. To test other approaches, we have worked with three other automated
  75. verification systems more recently.  These were the Ina Jo system [Ina
  76. Jo is a registered trademark of the System Development Corp.] based on
  77. abstract machine notions, the Gypsy system based on a buffer history
  78. approach, and state deltas which employ symbolic execution.  Some
  79. preliminary results in these were reported in [23,24,25], while the
  80. major results are in [26,1].
  81.  
  82. Part of our work has involved participation in standards activities in
  83. order to promote wider use of the more rigorous specification methods we
  84. and others have been developing.  This work has included development of
  85. specification standards within ISO SC 16 (for use with Open Systems
  86. protocols and services), collaboration with the System Development Corp.
  87. in their development of new IP, TCP, and Telnet protocol specifications
  88. [27,28,29], and comments on the transport protocol being developed for
  89. the National Bureau of Standards by Bolt Beranek and Newman [30,31].
  90.  
  91. 3.  SURVEY WORK
  92.  
  93. Our early work in this area focused on clarifying the meaning of
  94. specification and verification in the context of communication
  95. protocols.  This included developing the now widely accepted notion that
  96. complete protocol specifications must include separate definitions of
  97. (1) the service to be provided to the protocol's users, (2) the
  98. mechanisms used within the protocol itself to accomplish those services,
  99. and (3) the services requried from the lower layer(s) used by the
  100. protocol [2,3,4].
  101.  
  102. Ideally, the protocol itself (item 2) should be specified in an abstract
  103. fashion so that its "design" may be verified (shown to provide the
  104. desired service), while still leaving as much freedom as possible for
  105. implementation.  Of course, this means that any implementation must also
  106. be shown to properly implement the abstract design (in the more
  107. conventional program verification sense).
  108.  
  109. Protcol specification methods have traditionally developed from either a
  110. state machine or program language point of view.  State machine models
  111.  
  112.  
  113. C. Sunshine                                                     [Page 2]
  114.  
  115. IEN 211                                                      August 1982
  116.  
  117.  
  118.  
  119. view protocols as accepting inputs and producing outputs based on an
  120. explicit current state which serves to summarize the relevant previous
  121. history of the system.  These models include basic finite state automata
  122. (FSA), their extension into abstract machines (with additional state
  123. variables, not necessarily bounded), abstract data types, and graph
  124. models such as Petri nets and their extensions or the UCLA graph model.
  125.  
  126. The simpler forms of these have a variety of powerful analysis tools
  127. that are avialable such as state exploration, derivation of invariants
  128. by linear algebra, or reduction methods.  Unfortunately, they also lack
  129. the expressive power to completely model protocols of real world
  130. complexity.  The extended methods are more successful as specification
  131. tools, but make the analysis problem more difficult.
  132.  
  133. Program language models view protocols as just another kind of algorithm
  134. that may be specified using a choice of several high level programming
  135. languages.  Verification is then possible by developing appropriate
  136. assertions that reflect desired properties of the protocol, and proving
  137. them by conventional assertion proof methods.  Since protocols involve
  138. interaction among several concurrent modules, techniques that can handle
  139. parallel execution are required.
  140.  
  141. Traditional program proof methods have focused more on safety properties
  142. (only good things can happen) than liveness (good things will eventually
  143. happen).  More recent work to incorporate temporal logic into these
  144. methods facilitates the direct expression and proof of liveness
  145. properties.
  146.  
  147. A third group of methods has developed in an effort to eliminate the
  148. appearance of explicit state information in specifications, and to focus
  149. more directly on the input/output behavior of the protocol.  Formal
  150. languages and sequencing expressions are methods to specify the allowed
  151. sequences of events directly.  Of course these have well known relations
  152. to FSA that recognize or generate the same language.  Buffer or event
  153. histories are another technique used in several systems to facilitate
  154. direct expression of I/O behavior.
  155.  
  156. Of these different approaches, state machine methods seem to be most
  157. widely used due to their wider understandability and the existence of
  158. automated tools for their manipulation.  Surprisingly useful results
  159. have been obtained from the simpler models such as FSA and Petri nets,
  160. with applications to such protocols as X.25, X.21, and local net token
  161. passing documented in the literature [4,11,15].
  162.  
  163. The greater expressive power of abstract machines makes them popular for
  164. more complete or complex protocol specifications.  Such methods have
  165. been proposed within ISO, CCITT, NBS, and DoD as favored approaches to
  166. specifying their protocols.
  167.  
  168.  
  169.  
  170. C. Sunshine                                                     [Page 3]
  171.  
  172. IEN 211                                                      August 1982
  173.  
  174.  
  175.  
  176. Other methods, particularly temporal logic and sequencing expressions,
  177. are receiving much attention in the research community for their ability
  178. to remedy particular shortcomings, but are still in earlier stages of
  179. development.
  180.  
  181. 4.  IN-DEPTH STUDIES
  182.  
  183. Our in-depth studies have focused on the application of existing
  184. automated verification systems to communication protocols.  Our main
  185. goal has been to assess the current state of the art in automated
  186. verification and determine the potential for more widespread use of
  187. these techniques in protocol development.
  188.  
  189. A common set of example protocols were emplyed with each system.  These
  190. were the well-known Alternating Bit protocol (in a form including
  191. arbitrary message loss and retransmission), and the "three-way
  192. handshake" connection establishment protocol from the DARPA TCP.  The
  193. former served to test capabilites of the systems to handle "data
  194. transfer" functions, while the latter served to test "control"
  195. functions.  Since these protocols are quite mature, our results were
  196. mainly methodological, identifying strengths and shortcomings of each
  197. system, rather than uncovering protocol bugs (although we did discover
  198. an obscure error in TCP).
  199.  
  200. Our major interest throughout this work has been on design verification
  201. rather than code or implementation verification.  Hence we have
  202. attempted to develop "abstract" specifications for the services and
  203. entities of a given protocol layer, and to prove that the combined
  204. operation of the entitities plus the lower layer service has certain
  205. properties, or meets some service specification.  We have been less
  206. interested in the (more traditional) problem of verifying that a
  207. specific program or code correctly implements a protocol entity.
  208.  
  209. Affirm
  210.  
  211. Our deepest study has been of the Affirm system.  Affirm includes a
  212. specification language based on the theory of abstract data types, a
  213. verification condition (VC) generator, and an interactive theorem prover
  214. for proving properties of specifications or of programs.  There is also
  215. a library of already specified types (e.g., queues, sets) and their
  216. properties that may be used in building new types.
  217.  
  218. Thanks in part to collaboration with the Program Verification Project at
  219. ISI (developers of Affirm), our experience with Affirm has been quite
  220. successful.  We were able to model abstract machines in Affirm easily,
  221. to perform multilevel proofs (that a protocol meets its service), and to
  222. prove some other significant properties of several protocols, including
  223. progress properties and finding an obscure bug in TCP [18,19,20].
  224.  
  225.  
  226.  
  227. C. Sunshine                                                     [Page 4]
  228.  
  229. IEN 211                                                      August 1982
  230.  
  231.  
  232.  
  233. Ina Jo
  234.  
  235. The other three systems were chosen to explore some particular features,
  236. and received less attention.  Ina Jo is specifically intended to model
  237. hierarchies of abstract machines, with mappings from higher to lower
  238. layers defined.  The system also includes a specification language, a VC
  239. generator, and an interactive theorem prover.
  240.  
  241. Abstract machine type protocol specifications were very easy to write in
  242. Ina Jo, although absence of data types and sometimes cryptic syntax were
  243. shortcomings.  But the hierarchical proofs we had hoped to perform
  244. proved impossible due to limitations in Ina Jo's ability to handle
  245. nondeterministic mappings between layers (needed to model protocols with
  246. message loss).  The theorem prover was also not as convenient or
  247. flexible, especially in the handling of lemmas, driving us to carry some
  248. proofs into the Affirm system where they could be developed more easily,
  249. and then using the results to continue in Ina Jo.
  250.  
  251. Gypsy
  252.  
  253. The primary feature of Gypsy that interested us was its reliance on
  254. buffer histories rather than state transitions for specifying process
  255. behavior.  The specification language focuses on the external or
  256. input/output behavior of processes, with constructs to refer to the
  257. history of messages read and written by each process in each buffer.
  258.  
  259. Gypsy's buffer history orientation proved to be a mixed blessing.  When
  260. properties to be specified directly concerned relations between
  261. sequences of messages, Gypsy's buffer history techniques were quite
  262. powerful and convenient.  The Alternating Bit protocol falls in this
  263. category, and was essentially proved by transitivity of subsequence
  264. relationships.
  265.  
  266. For the three-way handshake, designers clearly think in terms of the
  267. state of an entity when defining its behavior, and it was difficult to
  268. construct meaningful external specifications of the entities.
  269.  
  270. Instead the proof was essentially carried out at the code level where
  271. reference to internal state variables and a conventional abstract
  272. machine could be used.  In this case, the Gypsy methodology seemed to
  273. get in the way.
  274.  
  275. State Deltas
  276.  
  277. The Concurrent State Deltas system was an outgrowth of the Microcode
  278. Verification Project at ISI and was still in an early stage of
  279. development.  The basic unit of specification is a "state delta" stating
  280. that if a certain precondition is ever met, then eventually a given
  281. postcondition will become true.  A set of CSDs for several processors is
  282.  
  283.  
  284. C. Sunshine                                                     [Page 5]
  285.  
  286. IEN 211                                                      August 1982
  287.  
  288.  
  289.  
  290. symbolically executed from a given initial state to determine whether a
  291. desired final state will necessarily be reached.
  292.  
  293. Unlike the previous proof systems that are interactive, the symbolic
  294. execution is completely automatic and requires no user aid.  In
  295. practice, however, system resources are quickly exhausted for
  296. specifications of any complexity, and the user must provide some
  297. appropriate intermediate goals to force pruning of the proof tree.  Thus
  298. proofs of the simplest cases of the three way handshake (no loss or
  299. retransmission) were easiest with CSDs since they were completed totally
  300. automatically, but it was difficult to see how to extend these to more
  301. complex cases.
  302.  
  303. The CSD system is also the only one to include specific time bounds.  In
  304. simple examples (e.g., specifying that retransmission will not occur
  305. unless no reply will arrive) time bounds effectively simplified the
  306. proof, but including the time information makes the symbolic execution
  307. more complex and hence was not always practical.  In more general
  308. protocols, such simple time constraints cannot be assumed anyway.
  309.  
  310. 5.  STANDARDS
  311.  
  312. Protocol development is now underway in many forums, and each of these
  313. must select some method for the specification of protocols being
  314. developed.  Throughout this research period we have attempted
  315. "technology transfer" by participating in several of these outside
  316. efforts.
  317.  
  318. The System Development Corp. (SDC) has been under contract to the
  319. Defense Communications Engineering Center to produce more rigorous
  320. specifications of the DARPA IP, TCP, and Telnet protocols.  We
  321. participated in the development of their specification methodology which
  322. is based on abstract machine notions [27], and helped review the
  323. application of this methodology to specific protocol and service
  324. specifications [28,29].
  325.  
  326. Bolt Beranek and Newman (BBN) has been under contract to the National
  327. Bureau of Standards (NBS) to develop a protocol specification technique
  328. and several specific protocols for Federal standards.  We participated
  329. in the review of the general methodology, and its application to the
  330. transport layer protocols and services in particular [30,31].
  331.  
  332. The International Standards Organization (ISO) SC 16 has developed the
  333. now widely known Open Systems Interconnection Architecture, and is now
  334. in the process of specifying protocols and services for the various
  335. layers.  A subgroup on Formal Definition Techniques has been in
  336. operation within WG 1 for about two years, and we have participated in
  337. their development of guidelines to be used by the other groups actually
  338. developing protocols.  These include a specification language based on
  339.  
  340.  
  341. C. Sunshine                                                     [Page 6]
  342.  
  343. IEN 211                                                      August 1982
  344.  
  345.  
  346.  
  347. abstract machine notions much like those in use by BBN, SDC, and others.
  348. The linear form has Pascal language syntax in many places, while a
  349. graphical form based on the CCITT SDL language is likely to be adopted.
  350.  
  351. 6.  CONCLUSIONS
  352.  
  353. In the area of specification, it is clear that abstract machine models
  354. are realtively mature, and are in wide use by more ambitious
  355. specification projects.  In addition to their benefit in simply defining
  356. a protocol, there are also a number of automated tools that can check
  357. for correct syntax, completeness, and partially validate the
  358. interactions of such specifications, and produce partial
  359. implementations.  This technology appears to be ready for more
  360. widespread use, and indeed has already been applied in the work on DoD
  361. protocol standards mentioned above.
  362.  
  363. Shortcomings of abstract machine methods in the areas of insufficient
  364. abstraction and handling progress as well as safety are being tackled by
  365. several methods that are in earlier stages of development, such as
  366. sequencing expressions and temporal logic.  We expect this work will
  367. have to continue for several years before the results are ready for more
  368. widespread use.
  369.  
  370. In the area of verification, based on our experiments with four systems,
  371. we can report that none of the systems has all the features desired, and
  372. none of them is ready for routine and/or mechanical application to
  373. real-world protocols.  Affirm was by far the more polished system, but
  374. even there the proof process remained very tedious.
  375.  
  376. Surprisingly (to us at least), the major contribution of automated
  377. verification systems does NOT seem to be in reducing the amount of human
  378. ingenuity required to accomplish a proof.  Rather, they do seem to
  379. increase the certainty of correctness.  If the user has the ingenuity to
  380. formulate the problem in a tractable fashion, and the stamina to follow
  381. through all the tedium, the formally verified conclusion does seem to be
  382. far more reliably correct than with hand proofs.
  383.  
  384. Beyond user interfaces and robustness, which certainly need attention in
  385. all but Affirm, each system is lacking some key abilities such as
  386. composition of independent modules, handling progress properties,
  387. redoing portions of proofs, supporting hierarchical verification, or
  388. more automatic proof discovery.  Several years' work and a second
  389. generation of verification systems incorporating the best features of
  390. all will be necessary before formal verification of realistic protocols
  391. can be accomplished by other than expert researchers with very large
  392. investments of time.
  393.  
  394.  
  395.  
  396.  
  397. C. Sunshine                                                     [Page 7]
  398.  
  399. IEN 211                                                      August 1982
  400.  
  401.  
  402.  
  403. REFERENCES
  404.  
  405. [1] Sunshine, C., "Automated Protocol Verification", USC Information
  406. Sciences Inst., Research Report, September 1982.
  407.  
  408. [2] Sunshine, C., "Formal Methods for Communciation Protocol Specifica-
  409. tion and Verification," Rand Corp., N-1429-ARPA/NBS, November 1979.
  410.  
  411. [3] Sunshine, Carl A., "Formal Techniques for Protocol Specification and
  412. Verification", Computer 12, 9, September 1979.
  413.  
  414. [4] Bochmann, G., and C. Sunshine, "Formal Methods in Communication
  415. Protocol Design", IEEE Trans. on Communication, COM-28, 4, April 1980.
  416.  
  417. [5] Sunshine, C., "Formal Modeling of Communication Protocols", USC
  418. Information Sciences Inst., RR-81-89, March 1981.
  419.  
  420. [6] Sunshine, C., "Formal Modeling of Communication Protocols", in
  421. Proc. Conference on Communication in Distributed Data Processing
  422. Systems, Technical University Berlin, January 1981.
  423.  
  424. [7] Sunshine, C., "Formal Protocol Specification", State of the Art
  425. Report on Network Architectures, C. Solomonides, editor, Pergamon
  426. Infotech, 1982.
  427.  
  428. [8] Sunshine, C., "Local Network Protocols", Proceedings of the Local
  429. Networks and Distributed Office Systems Conference, London, England,
  430. Online Conferences Ltd., May 1981.
  431.  
  432. [9] Sunshine, C., "Protocol Verification", talk presented at Nordic
  433. Universities Networking Conference (Nordunet), Copenhagen, Denmark,
  434. June 1981.
  435.  
  436. [10] Sunshine, C., Formal Modeling of Communication Protocols", Computer
  437. Networks and Simulation II, S. Schoemaker, editor, North-Holland
  438. Publishing, September 1982.
  439.  
  440. [11] Sunshine, C., editor, "Communication Protocol Modeling", Artech
  441. House, Dedham, Massachusetts, 1981.
  442.  
  443. [12] Sunshine, C., "The Meaning of Protocol Specification and
  444. Verification", ARPA Protocol Verification Workshop, March 1979.
  445.  
  446. [13] Postel, J., "Issues in Protocol Verification", ARPA Protocol
  447. Verification Workshop, March 1979.
  448.  
  449. [14] Sunshine, C., "Problem Areas in Protocol Specification and
  450. Verification", ISI Internal Memo, July 1980.
  451.  
  452.  
  453. C. Sunshine                                                     [Page 8]
  454.  
  455. IEN 211                                                      August 1982
  456.  
  457.  
  458.  
  459. [15] Sunshine, C., editor, Proc. 2nd Int. Workshop on Protocol Specifi-
  460. cation, Testing, and Verification, North-Holland Publishing, May 1982.
  461.  
  462. [16]  Sunshine, C., editor, special issue on Protocol Specification,
  463. Testing, and Verification, to appear in Computer Networks, early 1983.
  464.  
  465. [17] Sunshine, C., editor, special issue on Protocol Specification,
  466. Testing, and Verification, to appear in IEEE Trans. on Communications,
  467. December 1982.
  468.  
  469. [18] Thompson, D., C. Sunshine, R. Erickson, S. Gerhart, D. Schwabe,
  470. "Specification and Verification of Communication Protocols in AFFIRM
  471. Using State Transition Models", USC Information Sciences Institute,
  472. RR-81-88, March 1981.  Also to appear in IEEE Transactions on Software
  473. Engneering, September 1982.
  474.  
  475. [19] Schwabe, D., "Formal Specification and Verification of a
  476. Connection-Establishment Protocol", USC Information Sciences Institute,
  477. RR-81-91, April 1981.
  478.  
  479. [20] Berthomieu, B., "Algebraic Specification of Communication
  480. Protocols", USC Information Sciences Institute, RR-81-98, December 1981.
  481.  
  482. [21] Schwabe, D., "Formal Specification and Verification of a Connection
  483. Establishment Protocol", Proc. 7th Data Communications Symp., Mexico
  484. City, Mexico, IEEE, October 1981.
  485.  
  486. [22] Schwabe, D., Formal Techniques for the Specification and
  487. Verification of Protocols, Report No. CSD-810401, UCLA, (PhD Thesis),
  488. April 1981.
  489.  
  490. [23] Sunshine, C., "The Restaurant Example Revisited," USC Information
  491. Sciences Institute, Affirm Memo 52, September 1981.
  492.  
  493. [24] Sunshine, C., "Experience with Four Automated Verification
  494. Systems", Proc. 2nd Int. Workshop on Protocol Specification, Testing,
  495. and Verification, C. Sunshine, editor, North-Holland Publishing,
  496. May 1982.
  497.  
  498. [25] Overman, W., and S. Crocker, "Verification of Concurrent Systems:
  499. Function and Timing", Proc. 2nd Int. Workshop on Protocol Specification,
  500. Testing, and Verification, C. Sunshine, editor, North-Holland
  501. Publishing, May 1982.
  502.  
  503. [26] Overman, W., "Verification of Concurrent Systems: Function and
  504. Timing", PhD thesis, UCLA, 1981.
  505.  
  506.  
  507. C. Sunshine                                                     [Page 9]
  508.  
  509. IEN 211                                                      August 1982
  510.  
  511.  
  512.  
  513. [27] Simon, G.A., "DCEC Protocols Standardization Program/ Protocol
  514. Specification Report," System Development Corp., TM-7038/204/00,
  515. July 1981.
  516.  
  517. [28] Bernstein, M., "DCEC Protocols Standardization Program: Proposed
  518. DoD Internet Protocol Standard", Systems Development Corp.,
  519. TM-7038/205/01, December 1981.
  520.  
  521. [29] Bernstein, M., "DCEC Protocols Standardization Program: Proposed
  522. DoD Transmission Control Protocol Standard", Systems Development Corp.,
  523. TM-7038/207/01, December 1981.
  524.  
  525. [30] Sunshine, C., "Comments on the NBS Transport Protocol Proposal",
  526. USC Information Sciences Inst., IEN-195, August 1981.
  527.  
  528. [31] Sunshine, C., "Comments on 'Formal Service Specification of the
  529. Transport Protocol Services'" (April 1982 draft by Bolt Beranek and
  530. Newman for the National Bureau of Standards), USC/ISI memo, June 1982.
  531.  
  532. [32] Sunshine, C., "Protocol Workshop Report", Computer Communication
  533. Review, Special Interest Group on Data Communication, ACM, July#1981.
  534. Also in Computer Networks, V.5, N.4, July 1981.
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564. C. Sunshine                                                    [Page 10]
  565.